<?php
    session_start();
    include '../../../controlador/php/conexion/Conexion.php';
    $con = new Conexion();
    
    $tipc = $_REQUEST['tipc'];
    $tipn = $_REQUEST['tipn'];
    $f1 = $_REQUEST['fechaa'];
    $f2 = $_REQUEST['fechab'];
    
    $fecha1 = date('Y-m-d 00:00:00.000',strtotime($f1));
    $fecha2 = date('Y-m-d 23:59:59.999',strtotime($f2));
    
    if($tipc == 1){
        
        //select para saber la cantidad de solicitudes de cada tipo de necesidad en tosdos sus estados
        $cons1 = "select tipnombre,registra.reg,asignados.asi,tramite.tra,respuesta.res,verificado.ver,aceptado.ace,derrogado.der 
                  from dntiponece as dntn inner join dnsolicitud as dnsol on dntn.tipoid = dnsol.tipoid
                          outer apply(select COUNT(*)as reg from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 1 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as registra
                          outer apply(select COUNT(*)as asi from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 2 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as asignados
                          outer apply(select COUNT(*)as tra from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 3 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as tramite
                          outer apply(select COUNT(*)as res from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 4 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as respuesta
                          outer apply(select COUNT(*)as ver from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 5 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as verificado
                          outer apply(select COUNT(*)as ace from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 6 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as aceptado
                          outer apply(select COUNT(*)as der from dnsolicitud inner join  dntiponece on dnsolicitud.tipoid = dntiponece.tipoid 
                                          where dntn.tipoid = dntiponece.tipoid and dnsolicitud.dnsestado = 7 and dntiponece.tipoid = ".$tipn."
				  and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."')as derrogado
                  where dnsol.dnfecha between '".$fecha1."' and '".$fecha2."' and dntn.tipoid = ".$tipn."
                  group by tipnombre,registra.reg,asignados.asi,tramite.tra,respuesta.res,verificado.ver,aceptado.ace,derrogado.der";
        $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = array_map(utf8_encode,$respu);
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 2){
        //select para saber la cantidad de solicitudes por deteccion de necesidad
        $cons1 = "select dnmd.mecnombre,case when cants.nums is null then '0' else cants.nums end as cantidad
                  from dnmecanisdet as dnmd inner join dnsolicitud as dnsol on dnmd.mecoid = dnsol.mecoid
                          outer apply(select COUNT(*)as nums,dntiponece.tipnombre as nomtn 
                                                  from dnsolicitud inner join dnmecanisdet on dnsolicitud.mecoid = dnmecanisdet.mecoid
                                                                               inner join dntiponece on dnsolicitud.tipoid = dntiponece.tipoid
                                                  where dnmecanisdet.mecoid = dnmd.mecoid and dnsolicitud.tipoid = ".$tipn." and dnsolicitud.dnfecha between '".$fecha1."' and '".$fecha2."'
                                                  group by dntiponece.tipnombre)as cants 
                  where dnsol.dnfecha between '".$fecha1."' and '".$fecha2."'
                  group by dnmd.mecnombre,cants.nums,cants.nomtn";
        $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = array_map(utf8_encode,$respu);
        }
        print_r(json_encode($respuesta));
    }else if($tipc == 3){
        
        $cons1 = "SELECT LTRIM(RTRIM(USU.usu_nombres)) + ' ' + LTRIM(RTRIM(USU.usu_apellidos)) AS NOMBRES,CANT.num
                    FROM dnhistorial AS HIS LEFT OUTER JOIN usuario AS USU ON HIS.usu_oid = USU.usu_oid
                                                                    LEFT OUTER JOIN dnsolicitud AS SOLI ON HIS.dnsolicitud = SOLI.dnsoid 
                             OUTER APPLY(SELECT COUNT(*) AS num
                                         FROM dnhistorial
                                         WHERE dnhistorial.hisestado = 2 and hisfecmod BETWEEN '".$fecha1."' AND '".$fecha2."' AND dnhistorial.usu_oid = USU.usu_oid)AS CANT
                    WHERE HIS.hisfecmod BETWEEN '".$fecha1."' AND '".$fecha2."' AND HIS.hisestado = 2 AND SOLI.tipoid = ".$tipn."
                  GROUP BY USU.usu_nombres,USU.usu_apellidos,CANT.num";
        $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 4){
       $cons1 ="select encdescrip,valor1.cant1,valor2.cant2,valor3.cant3,valor4.cant4,valor5.cant5
                                from dnencuesta as dne
	outer apply(select COUNT(*)as cant1 
				from dnrespuesta inner join dnencuesta on dnrespuesta.encoid = dnencuesta.encoid
							     inner join dnsatisfac on dnrespuesta.saoid = dnsatisfac.saoid
							     inner join dnsolicitud on dnsatisfac.dnsoid = dnsolicitud.dnsoid
				where dnrespuesta.respuesta = 1 and dnsolicitud.tipoid = ".$tipn." and dnrespuesta.encoid = dne.encoid
					  and dnsatisfac.safecha between '".$fecha1."' and '".$fecha2."')as valor1
	outer apply(select COUNT(*)as cant2 
				from dnrespuesta inner join dnencuesta on dnrespuesta.encoid = dnencuesta.encoid
							     inner join dnsatisfac on dnrespuesta.saoid = dnsatisfac.saoid
							     inner join dnsolicitud on dnsatisfac.dnsoid = dnsolicitud.dnsoid
				where dnrespuesta.respuesta = 2 and dnsolicitud.tipoid = ".$tipn." and dnrespuesta.encoid = dne.encoid
					  and dnsatisfac.safecha between '".$fecha1."' and '".$fecha2."')as valor2
	outer apply(select COUNT(*)as cant3 
				from dnrespuesta inner join dnencuesta on dnrespuesta.encoid = dnencuesta.encoid
							     inner join dnsatisfac on dnrespuesta.saoid = dnsatisfac.saoid
							     inner join dnsolicitud on dnsatisfac.dnsoid = dnsolicitud.dnsoid
				where dnrespuesta.respuesta = 3 and dnsolicitud.tipoid = ".$tipn." and dnrespuesta.encoid = dne.encoid
					  and dnsatisfac.safecha between '".$fecha1."' and '".$fecha2."')as valor3
	outer apply(select COUNT(*)as cant4 
				from dnrespuesta inner join dnencuesta on dnrespuesta.encoid = dnencuesta.encoid
							     inner join dnsatisfac on dnrespuesta.saoid = dnsatisfac.saoid
							     inner join dnsolicitud on dnsatisfac.dnsoid = dnsolicitud.dnsoid
				where dnrespuesta.respuesta = 4 and dnsolicitud.tipoid = ".$tipn." and dnrespuesta.encoid = dne.encoid
					  and dnsatisfac.safecha between '".$fecha1."' and '".$fecha2."')as valor4
	outer apply(select COUNT(*)as cant5 
				from dnrespuesta inner join dnencuesta on dnrespuesta.encoid = dnencuesta.encoid
							     inner join dnsatisfac on dnrespuesta.saoid = dnsatisfac.saoid
							     inner join dnsolicitud on dnsatisfac.dnsoid = dnsolicitud.dnsoid
				where dnrespuesta.respuesta = 5 and dnsolicitud.tipoid = ".$tipn." and dnrespuesta.encoid = dne.encoid
					  and dnsatisfac.safecha between '".$fecha1."' and '".$fecha2."')as valor5
       group by encdescrip,valor1.cant1,valor2.cant2,valor3.cant3,valor4.cant4,valor5.cant5 " ;
       $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 5){
        
        $cons1 ="SELECT LTRIM(RTRIM(USU.USU_NOMBRES)) +' '+ LTRIM(RTRIM(USU.USU_APELLIDOS)) AS USUARIOS,CANTIDAD.CANT,CANTIDAD.tn, cast(oidsol.OIDS AS text) as OIDS
                FROM dnsolicitud AS SOLI LEFT OUTER JOIN usuario AS USU ON SOLI.usu_oid = USU.usu_oid
                     OUTER APPLY (SELECT COUNT(*) AS CANT,dnsolicitud.tipoid as tn
                                  FROM dnsolicitud 
                                  WHERE usu_oid = USU.usu_oid and dnsolicitud.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."'
                                        and dnsolicitud.tipoid = ".$tipn."
                                  group by dnsolicitud.tipoid)AS CANTIDAD
                     outer apply (select STUFF((SELECT CAST(',' AS varchar(MAX)) + CONVERT(varchar(MAX),SOLI2.dnsoid) 
                                                  FROM dnsolicitud AS SOLI2
                                                  WHERE SOLI2.usu_oid = USU.usu_oid AND SOLI2.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."' and SOLI2.tipoid = ".$tipn."
                                                  FOR XML PATH('')
                                                  ),1,1,'') AS OIDS) as oidsol
                WHERE SOLI.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."' and SOLI.tipoid = ".$tipn."
                GROUP BY USU.usu_nombres,USU.usu_apellidos,CANTIDAD.CANT,CANTIDAD.tn,oidsol.OIDS
                ORDER BY CANTIDAD.CANT DESC" ;
       $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 6){
        
        $cons1 ="SELECT NEC.necnombre,CANTIDAD.CANT
                 FROM dnsolicitud AS SOLI LEFT OUTER JOIN dnecesidad AS NEC ON SOLI.necoid = NEC.necoid
                                          LEFT OUTER JOIN dntiponece AS TN ON NEC.tipoid = TN.tipoid
                          OUTER APPLY (SELECT COUNT(*) AS CANT
                                      FROM dnsolicitud 
                                      WHERE NEC.necoid = dnsolicitud.necoid and dnsolicitud.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."'
                                            and dnsolicitud.tipoid = ".$tipn.")AS CANTIDAD
                 WHERE SOLI.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."' and SOLI.tipoid = ".$tipn."
                 GROUP BY NEC.necnombre,TN.tipnombre,TN.tipoid,CANTIDAD.CANT
                 ORDER BY CANTIDAD.CANT DESC";
       $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 7){
        
        $cons1 ="SELECT NEC.necnombre,CANTIDAD.CANT
                 FROM dnsatisfac SAT LEFT OUTER JOIN dnrespuesta AS RES ON SAT.saoid = RES.saoid
                                                        LEFT OUTER JOIN dnsolicitud AS SOLI ON SAT.dnsoid = SOLI.dnsoid
                                                        LEFT OUTER JOIN dnecesidad AS NEC ON SOLI.necoid = NEC.necoid
                                                        LEFT OUTER JOIN dntiponece AS TN ON NEC.tipoid = TN.tipoid
                         OUTER APPLY(SELECT COUNT(*)AS CANT
                                                 FROM dnrespuesta LEFT OUTER JOIN  dnsatisfac ON dnrespuesta.saoid = dnsatisfac.saoid
                                                          LEFT OUTER JOIN dnsolicitud ON dnsatisfac.dnsoid = dnsolicitud.dnsoid
                                                 WHERE dnrespuesta.respuesta = 1 AND dnsolicitud.necoid = NEC.necoid and dnsolicitud.tipoid = ".$tipn." and dnsolicitud.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."')AS CANTIDAD 
                 WHERE SOLI.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."' and RES.respuesta = 1 and SOLI.tipoid = ".$tipn."
                 GROUP BY NEC.necnombre,CANTIDAD.CANT";
       $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 8){
        
        $cons1 ="SELECT SERV.GDPNOMBRE,CANTIDAD.CANT
                FROM dnsolicitud AS SOLI LEFT OUTER JOIN DGempres10..GENDEPEND AS SERV ON SOLI.dnservicio = SERV.OID
                     OUTER APPLY(SELECT COUNT(*)AS CANT
                                 FROM dnsolicitud
                                 WHERE dnsolicitud.dnservicio = SERV.OID AND dnsolicitud.tipoid = ".$tipn." and dnsolicitud.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."')AS CANTIDAD
                WHERE SOLI.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."'  AND tipoid = ".$tipn."
                GROUP BY SERV.GDPNOMBRE,CANTIDAD.CANT";
       $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 9){
        
        $cons1 ="SELECT USU.usu_documento,LTRIM(RTRIM(USU.usu_nombres))+' '+ LTRIM(RTRIM(USU.usu_apellidos)) AS USUARIO,
                       CASE WHEN CARGO.carnombre IS NULL THEN '-' ELSE CARGO.carnombre END CARGO,
                       FECHAREGIS.hisfecmod as h1,FECHARES.hisfecmod as h2,
                       DATEDIFF(HOUR,FECHAREGIS.hisfecmod,FECHARES.hisfecmod)AS HORAS
                FROM dnsolicitud AS SOLI LEFT OUTER JOIN usuario AS USU ON SOLI.usu_oid = USU.usu_oid
                                         LEFT OUTER JOIN gecargo AS CARGO ON USU.caroid = CARGO.caroid
                         OUTER APPLY(SELECT H1.hisfecmod
                                     FROM dnhistorial AS H1
                                     WHERE H1.hisestado = 1 AND H1.dnsolicitud = SOLI.dnsoid)AS FECHAREGIS
                         OUTER APPLY(SELECT H1.hisfecmod
                                     FROM dnhistorial AS H1
                                     WHERE H1.hisestado = 4 AND H1.dnsolicitud = SOLI.dnsoid)AS FECHARES
                WHERE SOLI.dnfecha BETWEEN '".$fecha1."' AND '".$fecha2."' AND SOLI.tipoid = ".$tipn." AND SOLI.dnsestado in(4,5,6,7)
                ORDER BY FECHAREGIS.hisfecmod DESC";
       $res = $con->query($cons1);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }else if($tipc == 10){
        
        $lst  = $_REQUEST['lst'];
        
        $select = "SELECT NEC.necnombre
                   FROM dnsolicitud AS SOLI LEFT OUTER JOIN dnecesidad AS NEC ON SOLI.necoid = NEC.necoid
                   WHERE SOLI.dnsoid IN(".$lst.")";
        $res = $con->query($select);
        
        while ($respu = mssql_fetch_array($res)){
            $respuesta[] = $respu;
        }
        print_r(json_encode($respuesta));
        
    }
    
    $con->cerrarConexion()
            
    
?>